#encoding: utf-8
import os
import logging
import time

# SECRET_KEY = os.urandom(24) # 解析session，重启服务后需要重新登录
SECRET_KEY = 'afweradfbgsebdsfgar'  # 固定字符串重启服务后不需要重新登录

DEBUG = False

BASE_DIR = os.path.dirname(os.path.abspath(__file__))

# 导出导入文件地址，尾部必须带 /，否则会出问题
path_download = "/static/excel/download/"
path_upload = "/static/excel/upload/"

# 导入excel最大行数
IMPORT_MAX_ROWS = 1000

# 导入方式：1-遇到必填项为空时跳过该行继续导入； 0-有必填项为空时全部数据都不导入
IMPORT_WAY = 1

# PERMANENT_SESSION_LIFETIME =

# 数据库配置
mysql = {
    "host":"x.x.x.x",
    "port":"3306",
    "user":"username",
    "passwd":"pwd",
    "dbName":"sparrow",
}

# 为False时，response中的中文会正常展示；为True时，中文会以编码显示
JSON_AS_ASCII = False

DB_URI = 'mysql+pymysql://%s:%s@%s:%s/%s?charset=utf8' % (mysql['user'], mysql['passwd'], mysql['host'], mysql['port'], mysql['dbName'])

SQLALCHEMY_DATABASE_URI = DB_URI
SQLALCHEMY_TRACK_MODIFICATIONS = False

CMS_USER_ID = 'amanBing'

# 发送人邮箱的配置
# MAIL_USE_TLS端口号587
# MAIL_USE_SSL端口号465
MAIL_SERVER="smtp.qq.com"
MAIL_PORT=587
MAIL_USE_TLS=True
# MAIL_USE_SSL=False
MAIL_USERNAME="xxxxx@qq.com"
MAIL_PASSWORD="xxxxxx"
MAIL_DEFAULT_SENDER="xxxxx@qq.com"

# 阿里短信大鱼配置
ALIDAYU_APP_KEY = 'xxxxx'
ALIDAYU_APP_SECRET = 'xxxx'
ALIDAYU_SIGN_NAME = '小饭桌应用'
ALIDAYU_TEMPLATE_CODE = 'xxxx'

# 100个数字列表，短信验证码使用
NUMLIST = list('0012345678901234567890123123456012345678901234567890123789012345678901234012345678901234567894789012')


# 万能验证码
GREAT_CAPTCHA = '8888'

# 七牛配置
QN_CONF={
    'access_key':'xxxxx-VcfM1-tQo_',
    'secret_key':'xxxxxx-0Co2N2n',
    'bucket':'aman-test'
}

# bug号跳转设置（搜索bugid的url）
bug_url = 'http://zentao.xxxx.com/index.php?m=bug&f=view&t=html&id='

# bug记录系统的host
bug_host = 'zentao.xxxx.com'

# 每一页展示的条数
PAGE_SIZE = 10


# 业务线
business = {
    0:'全部业务',
    1:'app',
    2:'服务端',
    3:'h5',
    4:'电商',
    5:'教育',
    6:'会员',
    7:'小程序',
    8:'其他'
}
# 解决状态
ishandled = {
    0:'待解决',
    1:'已解决',
    2:'未解决',
    3:'不需要解决',
    4:'用户自己解决',
    5:'无法复现'
}

# 问题类型
issue_type = {
    0:'待确认',
    1:'系统错误',
    2:'运营操作错误',
    3:'用户误解',
    4:'外部原因',
    5:'UI展示',
    6:'需求优化',
    7:'无法复现',
    8:'第三方故障',
    9:'网络影响',
    10:'其他',
    11:'未知'
}

# 严重程度
issue_lever = {
    -1:'未设置',
    0:'事故',
    1:'崩溃',
    2:'严重',
    3:'较严重',
    4:'一般',
    5:'轻微',
    6:'UI展示'
}

# 是否为bug
isBug = {
    -1:'未设置',
    0:'否',
    1:'是',
    2:'不确定'
 }

# 列表展示最大字数
TEXT_MAX_LENGTH = 40

# 数据导入规则文案
IMPORTTEXT = '''导入规则：
1、导入时，第一行不能删除，数据会从第三行开始读取，一次最多支持导入1000行数据，所有的列的顺序不能改变，列不能增删
2、表格sheet名称必须为“反馈问题记录表”，并且必须是第一个sheet表。
3、红色字体表头的列需要特殊注意，具体注意事项如下。
4、工单编码在数据库里存在时会做更新操作，否则会做新增操作。
5、反馈日期、反馈人、问题描述、接收人这四项不能为空，为空时所有数据都不会执行导入操作。
    注意：并且反馈日期格式必须为形如“2020-05-13”的日期格式，格式不正确时会默认为“1970-01-01”。
6、所属业务线、解决状态、问题类型、严重程度、是否为bug 必须按如下填写，不能添加任何其他文案，不填或者填错将按默认值赋值（业务线默认为app，其他都默认为第一个选项）。
    所属业务线：全部业务，app，服务端，h5，电商，教育，会员，小程序，其他  ---注意：“所属业务线”如果有多个的时候必须使用中文逗号分隔
    解决状态：待解决，已解决，未解决，不需要解决，用户自己解决，无法复现   ---注意：“解决状态”只能设置一个选项
    问题类型：待确认，系统错误，运营操作错误，用户误解，外部原因，UI展示，需求优化，无法复现，第三方故障，网络影响，其他，未知   ---注意：“问题类型”只能设置一个选项
    严重程度：未设置，事故，崩溃，严重，较严重，一般，轻微，UI展示   ---注意：“严重程度”只能设置一个选项
    是否为bug：未设置，否，是，不确定   ---注意：“是否为bug”只能设置一个选项
7、创建人、更新人如果为空则默认为当前登录人，如果获取登录人失败时则默认为“管理员”。
8、创建时间、更新时间必须为形如“2020-05-13 12:47:06”格式的日期+时间格式，否则默认为导入时的时间。

9、图片地址和bug_id可以为空，但是如果要填写内容时，需要注意：
    图片地址：必须为url地址形式
    bug_id：必须为纯数字
    这两项填错的话不影响导入，但是会影响界面展示，可以单独在界面上修改。
'''

# 是否需要发送钉钉消息
isDingtalk = 1

# 记录反馈：发送钉钉消息，isDingtalk=1时发，其他都不发送钉钉消息
ACCESS_TOKEN = 'd654709b7028e6031391ebd3558a1fc10ef7dc4159ed5b77617aa5f1afdc2f96'
DINGTALK_URL = 'http://xxxxx.xxxx.com/dingtalk-admin-web/chatbot/sendMessage?token=' + ACCESS_TOKEN

# 快捷跳转url
MESSAGE_URL_RECORD = 'http://x.x.x.x:8001/feedback/?ordercode='

ATWHO = ['']


'''
日志级别简单介绍
CAITICAL  50 	严重错误，表名软件已不能继续运行了
ERROR 	  40 	发生严重的错误，必须马上处理
WARNING   30 	应用程序可以容忍这些信息，软件还是在正常工作，不过它们应该被检查及修复，否则将在不久的将来发生问题
INFO 	  20 	证明事情按预期工作，突出强调应用程序的运行过程
DEBUG 	  10 	详细信息，只有开发人员调试程序时才需要关注的事情
NOTSET     0    意指不设置，但是会按照父logger级别来过滤日志（注意：不是最低级别的意思）
'''
writeFileLogLeverConfig = logging.WARNING       # 写入文件日志级别设置
printConsoleLogLeverConfig = logging.INFO    # 打印到控制台的日志级别设置
createLoggerLogLeverConfig = logging.INFO     # 设置logger日志级别，默认为INFO，设置级别过高会影响日志写入和打印，如，由于在记录日志时没有设置CRITICAL级别的，如果这里设置为CRITICAL，则不会有日志写入文件和打印到控制台
# 默认log文件信息
logFileName = 'logs_' + time.strftime("%Y%m%d", time.localtime()) + '.txt'
logFileDir = os.path.join(BASE_DIR, r'static/logs/')
logFilePath = logFileDir  + logFileName

# 以下为接口自动化的参数配置
# 响应结果超过maxResponseLenth长度后截取保存，最大不能超过5000
maxResponseLenth = 4000
sendMaxResponse = 200

# 接口监控：发送钉钉消息
ACCESS_TOKEN_SPARROW = '2394af694622913e9c303f6073632e231a841123f3156df3e7334c6c3ffc1093'
ACCESS_TOKEN_SPARROW_WARN = 'bb943efd2bdd1c31aaf80275277e8e26571200ec1bad686c58f6385abe15b2d7'
DINGTALK_URL_SPARROW = 'http://xxxx.xxxxxx.com/dingtalk-admin-web/chatbot/sendMessage?token='
MESSAGE_URL_SPARROW = 'http://x.x.x.x:8001/case_manage/?caseid='

# 接口超过n秒后预警的配置文件
IS_SEND_WARN_MSG = False
MIN_LIMIT_WARNTIME_YELLOW = 5
MIN_LIMIT_WARNTIME_RED = 10

# request请求超时时间
requestTimeout = 15

